JWT token过期自动续期解决方案 |
您所在的位置:网站首页 › tp6 jwt › JWT token过期自动续期解决方案 |
access_token: 用于一般的资源请求的token refresh_token: access_token过期后用于刷续期的token,注意设置refresh_token的过期时间需比access_token的过期时间长。 问题场景与解决办法问题1:实现自动登录 JWT Token设置有效期,一旦失效用户就要重新登录,这样的体验非常差,需要做到用户在无感知的情况下,解决如何刷新Token的问题 解决方案: 用户登录时调用后端认证接口,后端验证用户成功之后生成两个token,access_token和refresh_token ,后端将用户信息和这两个token打包成JWT后并返回给前端。前端在获取到登录成功返回的两个token之后,将之存放到localStorage本地存储中。 问题2:JWT用户如何无感知刷新token? 解决方案: JWT token过期自动续期解决方案(去Redis)1)前端调用认证服务器登录, 正确后从认证服务器获取token(访问令牌access_token,刷新令牌refresh_token,过期时间(秒)exp_in,其中access_token为5分钟,refresh_token为30分钟,过期时间为300秒;2)前端将其保存3)每次Http请求带着access_token来访问资源服务端,资源服务器将按如下步骤令牌。4)先校验JWT是否合法(只是过期,不影响校验通过) 或 用户ID是否存在, 不满足任一条件,返回401,让用户重新登录。5)验证令牌是否过期,没过期就结束令牌校验,继续本次请求的业务逻辑(此时,JWT合法性校验通过,)。6)令牌已过期, 如果令牌过期时间超过了过期时间的两倍,返回401,让用户重新登录。 如果令牌过期时间小于过期时间的两倍,并在http响应头添加特列标识 token_expired=access_token ,服务器同时返回后继的业务结果,前端接收到后,应该在后续的再到认证服务器获取新的token) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |